﻿namespace MugenInjection.Interface
{
    /// <summary>
    ///  Represents the context for scope lifecycle.
    /// </summary>
    public interface IScopeLifecycleContext
    {
        /// <summary>
        /// Gets the <see cref="IBinding"/>.
        /// </summary>
        IBinding Binding { get; }

        /// <summary>
        /// Gets the current <see cref="IBindingContext"/>.
        /// </summary>
        IBindingContext BindingContext { get; }

        /// <summary>
        /// Resolves instance for the specified <see cref="IBindingContext"/>.
        /// </summary>
        /// <returns>An instance of the service.</returns>
        object ResolveCurrentService();
    }
}